TOP

SQL CASE

SQL CASE 説明

CASE SQL 式は条件を調べ、最初の条件が満たされた場合に値を返します (たとえば、if-then-else ステートメント)。 したがって、条件が満たされるとすぐに、命令は読み取りを停止し、結果を返します。 条件が満たされない場合は、ELSE 句の値が返されます。

ELSE の一部が存在せず、条件を満たさない場合は、NULL が返されます。


CASE 構文

SELECT column1, column2, ...
CASE 
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionN THEN resultN
    ELSE result
END

デモデータベース

以下は、「Northwind」データベースの「OrderDetailss」テーブルのサンプルです。

OrderDetailIDOrderIDProductIDQuantity
1102481112
2102484210
310248725
410249149
5102495140

SQL CASE の例

次の SQL ステートメントは条件をチェックし、最初の条件が満たされた場合に値を返します。

Run SQLSELECT OrderID, Quantity,
CASE
    WHEN Quantity > 30 THEN 'The quantity is greater than 30'
    WHEN Quantity = 30 THEN 'The quantity is 30'
    ELSE 'The quantity is under 30'
END AS QuantityText
FROM OrderDetails

この SQL クエリは、顧客を都市 (City) ごとに並べ替えます。ただし、都市が NULL の場合は、国 ( Country) で並べ替えます。

Run SQLSELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
    WHEN City IS NULL THEN Country
    ELSE City
END)